﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using T.AuditField;

namespace T.Settlement.Domain
{
    /// <summary>
    /// 进项/销项发票管理
    /// </summary>
    public class Invoice: AuditFields
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [Key]
        public int InvoiceId { get; set; }
        /// <summary>
        /// 全球唯一标识符
        /// </summary>
        public string? CompanyID { get; set; }
        /// <summary>
        /// 用户Id
        /// </summary>
        public int? User_Id { get; set; }
        /// <summary>
        /// 发票号
        /// </summary>
        public string? InvoiceNumber { get; set; }
        /// <summary>
        /// 开票单位(可空)
        /// </summary>
        public string? InvoicingUnit { get; set; }
        /// <summary>
        /// 客户名称(可空)
        /// </summary>
        public string? CustomerName { get; set; }
        /// <summary>
        /// 发票类型
        /// </summary>
        public int? InvoiceType { get; set; }
        /// <summary>
        /// 发票金额
        /// </summary>
        public decimal? InvoiceValue { get; set; }
        /// <summary>
        /// 税率
        /// </summary>
        public decimal? TaxRate { get; set; }
        /// <summary>
        /// 开票日期
        /// </summary>
        public DateTime? InvoicingDate { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string? Notes { get; set; }
        /// <summary>
        /// 制单人
        /// </summary>
        public string? InvoiceCreator {  get; set; }
        /// <summary>
        /// 发票分类(进项1、销项2)
        /// </summary>
        public int? InvoiceClassify { get; set; }
    }
}
